package data;

import java.sql.*;
import java.util.*;
import utils.Transacao;

public class PacienteOcupaSalaData {

  public void incluir(PacienteOcupaSalaDO paciente_sala, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "insert into PacienteOcupaSala (Paciente_idPaciente, Salas_idSalas, HorarioChegada, HorarioSaida) values (?, ? , ? ,?)";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setInt(1, paciente_sala.getIdPaciente());
     ps.setInt(2, paciente_sala.getIdSalas());
     ps.setDate(3, new java.sql.Date(paciente_sala.getHorarioChegada().getTime()));
     ps.setDate(4, new java.sql.Date(paciente_sala.getHorarioSaida().getTime()));
     int result = ps.executeUpdate();
  }

  public void excluir(PacienteOcupaSalaDO paciente_sala, Transacao tr) throws Exception {
     excluir(paciente_sala.getIdPaciente(), tr);
  } // excluir

  public void excluir (int idPaciente, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "delete from PacienteOcupaSala where Paciente_idPaciente=?";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setInt(1, idPaciente);
     int result = ps.executeUpdate();
  } // excluir 

  public void atualizar(PacienteOcupaSalaDO paciente_sala, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "update PacienteOcupaSala set Salas_idSalas=?, HorarioChegada=?, HorarioSaida=? where Paciente_idPaciente=?";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setInt(1, paciente_sala.getIdPaciente());
     ps.setInt(2, paciente_sala.getIdSalas() );
     ps.setDate(3, new java.sql.Date(paciente_sala.getHorarioChegada().getTime()));
     ps.setDate(4, new java.sql.Date(paciente_sala.getHorarioSaida().getTime()));
     int result = ps.executeUpdate();
  } // atualizar

  public PacienteOcupaSalaDO buscar(int idPaciente, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "select * from PacienteOcupaSala where  Paciente_idPaciente=?";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setInt(1, idPaciente);
     ResultSet rs = ps.executeQuery();
     rs.next();
     PacienteOcupaSalaDO paciente_sala = new PacienteOcupaSalaDO();
     paciente_sala.setIdPaciente (rs.getInt("Paciente_idPaciente"));
     paciente_sala.setIdSalas (rs.getInt("Salas_idSalas"));
     paciente_sala.setHorarioChegada(rs.getDate("HorarioChegada"));
     paciente_sala.setHorarioSaida(rs.getDate("HorarioSaida"));
     return paciente_sala;
  } // buscar

  public Vector pesquisarPorIdPaciente(int idPaciente, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "select * from PacienteOcupaSala where Paciente_idPaciente like ?";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setInt(1, idPaciente);
     ResultSet rs = ps.executeQuery();
     System.out.println("query executada");
     Vector pacientes_salas = new Vector();
     while (rs.next()) {
        PacienteOcupaSalaDO p = new PacienteOcupaSalaDO();
        p.setIdPaciente (rs.getInt("Paciente_idPaciente"));
        p.setIdSalas (rs.getInt("Salas_idSalas"));
        System.out.println(" got " + p.getIdPaciente());
        p.setHorarioChegada(rs.getDate("HorarioChegada"));
        p.setHorarioSaida(rs.getDate("HorarioSaida"));
        pacientes_salas.add(p);
     }
     return pacientes_salas;
  } // pesquisarPorIdPaciente

} // PacienteOcupaSalaData
